Changes: (translate)
---------
4.1.7.RC1   01/01/2021
---------
   Fixed saving the script in UTF-8 encoding with a BOM label.
   Fixed a crash of auto-complete code when the insertion position was on the last line of the script.
   Fixed a crash where the procedure name was not entered after the keyword 'procedure'.
   fixed a bug when adding a string when registering scripts, and saving the scripts.lst file in its current encoding.
   Fixed updating the path to the language message folder, and the path to save the. msg file to the dialog folder when creating it.
   Fixed a crash when parsing the dialog code.

---------
4.1.7.RC   06/11/2020
---------
   Added the "Save All" button to the main panel.
   Added auto-detection of the current language for tooltips at the first launch of the editor.
   Added auto-updating of the error log when switching tabs will now occur when there are errors during parsing or compilation.
   Added the .cfg extension for opening files of this type in the editor.
   Added a special comment form /** **/ for displaying macro descriptions.
   Added a hotkey for creating procedures.
   Added search for dialog .msg files in subfolders of alternative file paths.
   Added saving search paths and search words for Advanced Search.
   Added display of the "Batch Compiler" window tab on the taskbar.
   Added a function for renaming globally-defined macros.
   Added an additional button to the menu bar for updating parser data.
   Improved and fixed bulk compilation of scripts for multi-stream mode, and added the Short Circuit Evaluation parameter.
   Improvement of the module for building dialog diagrams.
   Added the ability to edit the template code when adding a new node in the dialog node editor.
   Removed the modality of the script registration window, now the window can be minimized.

Fixes:
   Improvements and bug fixes in the form of creating procedures with arguments.
   Fixed not always working Drag&Drop function for opening files.
   Fixed saving files that are not .ssl,. h, and. msg in their original encoding.
   Fixed font size in auto-completion list tooltips for non-Tahoma fonts.
   Fixed a crash when moving procedures in the procedure Navigator when existing procedure arguments were displayed.
   Fixed clearing the compilation log when using the "RoundTrip" menu command.
   Correction of various errors in the dialog diagram building module.
   Fixed an error when trying to open an associated script message file for file types other than. ssl
   Fixed incorrect display of Unicode characters in macro pop-up information when reading *. h files.
   Fixed updating of name and file Declaration data in procedures and variables when the script was saved under a different name.
   Fixed the behavior and splitting of the document with the "Split" function when the focus disappeared from the active text area.
   Fixed a bug when decompiling scripts when decompiling scripts took a long time.
   Fixed clearing the list of current errors in the script when compiling the script successfully.
   ...
   And many other minor fixes.

---------
4.1.6.0    10/03/2020
---------
   Added descriptions to the new sfall function and their syntax highlighting in the script code.
   Added an option in the context menu to convert a number from decimal to hexadecimal and back.
   Added automatic addition of the keyword "variable" to procedure arguments when creating a procedure.
   Improved user interaction with the advanced search form.
   The advanced search options "Match Case" and" Whole Word " retain their set state in the editor settings.
   Added an option to switch the graphic mode of the carriage cursor.
   Added conversion of CRLF control characters to LF for Unix systems when saving the script.

Fixed bugs:
   Fixed updating icons on tabs when clicking the "SaveAll" button.
   Fixed overlay underline each other's errors in the script code.
   Fixed removal of the '\' symbol in tooltips for local macros.
   Fixing incorrect control characters for line feed when opening a script file.
   Fixed program hang when compiling scripts in Windows 10.
   Fixed slow rendering of the table interface in Windows 7 for the script registration window and message editor.
   Fixed displaying the carriage cursor for a dark theme in software mode (for Unix systems).
   Other minor fixes in the editor.

---------
4.1.5.0    18/20/2019
---------
Major innovations and improvements:
   Improved the AutoComplete list call function, now displays a list with keywords relative to the cursor position.
   The system of highlighting procedures in the text of the script has been redesigned.
   Added highlighting of the current procedure in the right panel of procedures.
   Added renaming procedures by links to them.
   Improved logic of path selection when extracting a script from .dat archive.
   Slightly increased window size and font size for Headers files and increased window size for script registration.
   Added saving folded script procedures into a separate configuration file.
   For the built-in preprocessor sfall compiler added an argument that allows you to make conditional compilation of the script.
   Added option to enable script backward compatibility mode for compiler and parser.
   Improved compilation mode via custom cmd file.
   Added tool to customize custom dialog macros (beta).
   Increased the font size pop-up dialog box text for block diagrams.
   Improvement in the construction of the dialog flowchart, and bug fixes.

   Added descriptions to new sfall functions and their syntax highlighting.

Fixed bugs:
   The braces have been removed from the options on the pair of input characters.
   Fixed the display of the text encoding when using paths to files with Cyrillic characters.
   Fixed updating the procedure list for the right panel.
   Fixed insertion of procedure Declaration when no procedure was previously declared in the script.
   Fixed selection of a special region with text for function arguments when double-clicking on it.
   Fixed the search order of Include files, now the root folder of the application has the lowest priority when searching.
   Fixed RoundTrip menu feature, now does not overwrite .int file in source folder.

---------
4.1.4.253  12/06/2019
---------
   Fixed navigation bug for the right panel a list of procedures.

---------
4.1.4.214  12/05/2019
---------
Major innovations and improvements:
   Added all new functions of sfall 4.1.7 and descriptions.
   Added insertion of the name of the procedure or variable into the script when clicking their names in the right pane of the editor.
   Added a limit on the number of entries for the search history when saving them to a file.
   Added underlining of the error line when the error is localized in the header file.
   Improved form windows for advanced search.
   Improved the call to the AutoComplete list and added commands to call the AutoComplete list on a hot key.
   Improved functions for automatic insertion of script code fragments, and pair quotes in script code.
   Modification of the button to change the font size.
   Improvement of the MSG editor, improved control of the Home and End cursor keys when editing text in a cell.

Fixed bugs:
   Fixed creation of a closing tag for procedures if the required keyword 'end' was not found.
   Fixed automatic insertion of the 'end' keyword for the procedure.
   Fixed of the AutoComplete list, when, when opening the list, the cursor pointer was over the element and did not allow to select an element using the cursor keys.
   Carriage positioning fix when closing the AutoComplete list.
   Fixed of the bug of saving the file scrname.msg when registering the script in Scripts.lst.

---------
4.1.3.580  28/08/2018
---------
Major innovations and improvements:
   Added a pop-up picture informing about the successful compilation of the script.
   Added a dark scheme for highlighting the syntax functions of scripts.
   Added highlighting for all available script procedures.
   Added a menu for the left panel that allows you to quickly add a custom function to the function tree or edit an existing one.
   Retrieving all definitions from all available * .h files in the header folder after opening the script file.
   Automatic correction of the location of the keyword 'begin' after de-compiling the script.
   Saving and restore hidden procedures blocks after opening/closing the script file.

Fixed old bugs.

---------
4.1.2.280 RC
---------
Added new features:
   Added the ability to open script file or a dialog file in an external editor.
   The function of fast paste of the Include file into the script code is added.
   Added an increase in the number in the procedure name when creating a new procedure.

Fixed many bugs the editor.

---------
4.1.1 RC
---------
Additions and improvements:
   Added hotkey for the menu function to find References.

Fixed bug:
   Fixed bug for navigation positions in the script when using command hotkeys.
   Fixed bugs when using the hot keys of the menu commands Declaration/Definition and Open Include.
   Fixed the appearance of a warning message when creating a new flowchart.
   Fixed hiding AutoCompletion list and tooltips.

---------
4.1.0 RC
---------
Additions and improvements:
   Added a system for building flowcharts for visualizing dialog nodes, as well as editing them.
   Improved preview and testing of the script dialogue.
   Some features of the editor have been revised and improved.
   Some define constants have been added to the syntax highlighting.
   Added the ability to select a monospaced font for a text editor.
   Added the ability to use an external mcpp preprocessor, which allows conditional compilation of the script.
   Added the ability to check the open .MSG message file for errors in the structure.
   Added the ability to open (decompile) a script packed into the .dat archive of the game in the script registration window.
   Added options for displaying tabs and spaces characters, as well as functions for their conversion, and removed.

Fixed bug:
   Fixed a lot of minor errors in the editor.

---------
4.0.8 beta
---------
Additions and improvements:
   In the message editor, you can change the font size, and highlight the comment line.
   The "Errors" tab added error parser errors, for a quick jump to them in the script.
   Improved dragging between each other for tabs of open scripts.

Fixed bug:
   Fixed the error of deleting a previously compiled script in the destination folder if the current compilation failed.
   Fixed a bug in formatting the script code for negative numbers, and for strings enclosed in quotation marks.
   Fixed a bug where the right character in the string was deleted when automatic pairing was performed.
   Fixed error of opening script files by clicking on the script file.

---------
4.0.7 beta
---------
Added new features:
   In the dialog message editor, an option was added to place the editor window on top of the interface of the main script editor.
   Added some missing macros to the syntax highlighting and the function tree.

Fixed bug:
   For Russian DOS encoding, when you save a text file, the Russian letter "X" is replaced with a Latin one for correct display in the game.
   Fixed bug when renaming local macros.
   bug fixes when moving and creating procedures.
   Fixed a bug related to the associated editor files when opening them.

---------
4.0.5 beta
---------
Added new features:
   Added a tool for testing and previewing the dialog in the script.
   The automatic indentation behavior for the line has been changed, now "end" is automatically inserted after the keyword "begin" when the carriage is moved to a new line.
   In the advanced search, the options "Match Case" and "Whole Word Only" are added, and search in files is improved.
   The text dialog file editor is now run separately from the main script editor.
   Added user files User_SyntaxRules.xml and UserFunctions.ini, to add your own macros and their highlighting.
   Added constant definition SFALL_SC_EVALUATION indicating that when compiling this script, use the compiler option "Short-circuit evaluation". (This does not work for mass compilation of scripts).
   In the text message editor, the ability to move lines, as well as using the tab character or the option to specify which lines are the answers for the player, is added.

Fixed bug:
   Fixed a bug where the macro was not detected if the tab character was used in the macro definition line.
   Fixed a path when searching for related message files when an undefined output folder for scripts, an associated message file is searched, in the same folder where the script file is located.

---------
4.0.0 beta (extended by mr.Stalin)
---------
Added new function:
   Added a functional tree panel with a description of all commonly used functions and macros.
   Added a visual editor for message files, now it can be installed when opening associated message files.
   Added a menu for quickly opening header files.
   Changed the appearance of the editor for registering scripts, now it looks more correct.
   A common panel of Procedures and Variables is divided into global and local.
   A shortcut menu has been added to the procedure panel with the functions: Create/Rename/Delete/Move, and quickly create standard procedural handlers.
   Added a panel for quick search of text in the open current script.
   New syntax highlighting for the script has been added, and absent functions have been added to the backlight.

   Added functions: Comment/Uncomment the selected code fragment of the script.
   Added the function of indentation reduction for selected lines, as well as alignment of the selected text to the left.
   The function for formatting the script code for the selected text is added, and the option for auto-formatting the script code when opening the SSL file.
   In the context menu, the function of highlighting the selected text of the script is added.
   In the context menu added function of intuitive renaming for local variables/variables of the script, procedure names, and macros defined in the script itself.
   Automatic duplication of the closing parentheses and quotation marks, also the principle of backlighting for the parentheses is changed.

   In the settings, additional paths have been added to search for associated message files.
   Saving the current cursor position when the script file is closed, and then proceeding to this position after opening the same script.
   In the settings, an option has been added to override the paths of the header files connected in the script.

   A button is added to go to the procedure under the cursor, in the case where the code parser caused an error, or if the parser is inactive.
   Added navigation buttons for the script code.
   The option of horizontal division of the script document into two parts (top/bottom) is added.
   The option of underlining errors of script code from an external parser is added.
   Added a vertical helper guide, the distance of which depends on the 'Tabs Size Space' setting.
   Highlight the current line, as well as display information about the current cursor position.
   Now the selection of the text does not overlap the syntax highlighting in the script.
   Ability to hide the numbering of lines in the script, right or bottom panel.
   A button for the right panel of procedures has been added, which allows you to minimize other procedures when going to the selected procedure.

   The option to save the compiled file in the same directory as the ssl source itself is added, i.e. Not putting it in the Scripts folder.
   Added optional use of the Watcom preprocessor before compiling the script, with the possibility of conditional compilation (RELEASE/DEBUG).
   An optional feature is the compilation of the script via the user usercomp.bat file.

   In opcodes_rus.txt (Russian version) some macros from command.h
   Added support for the cyrillic encoding (OEM-866/Dos) for text message files.

Changed original function:
   Changed text highlighting for. Msg message files.
   When registering scripts in Script.lst, now it is not necessary to have the files script.h and scrname.msg.
   When you open the .int script file and decompile it, in cases when an error occurs during its decompilation, an attempt will be made to decompile using the earlier version of the decompiler (int2ssl.exe from sfall v.3.5).
   Changed the principle of interaction with an external code parser, now the script procedures are always displayed, regardless of whether the parser is enabled.
   Also, tooltips to functions from opcodes.txt when you open the script for the first time are now displayed, despite the state of the external parser.
   Click the mouse on the parser's status label to start updating the information.
   The "Outline" function has been changed, now it opens and closes the procedural blocks intuitively correctly, and the folded blocks show the name of the procedure.
   The 'Auto-Comlete' function window is now unlimited in the number of available opcodes or macros.
   Added a button for the right panel of procedures, which allows to show or hide arguments accepted by the procedure.
   The search window is now always displayed over the working window.
   The functional of the "GOTO Line" function has been slightly improved.
   Improved display of a pop-up window to macros and opcodes, as well as information about them.

   Duplicating opcodes and macros are removed from the opcodes.txt file.
   The function for patching CritterHead Frm files for sfall "32-bit Head Graphics" is cut out, now it is a separate utility.

Fixed bug:
   The error of UpperCase/LowerCase functions has been fixed.
   Fixed bug when saving information to Script.lst file.
   Fixed bug when opening a file from the list of recently opened files, in the case when such file was not found.
   Fixed bug when searching for key text in all open documents, not allowing you to go to the search in the next open document.
   Fixed a bug beyond the ability to display prompts for opcodes and macros if they had capital letters.

And many other minor changes.

---------
3.6
---------
Added hotkeys for Find Definition, Find Declaration, Open include options
Fixed parser not being able to open procedure definitions in other files when included through an intermediate header
Added help tooltips for ALL scripting functions
Added primitive code auto-completion for all known opcodes as well as current script globals and macros
When clicking on a row in Errors tab, you will be taken to the column where the error occured, rather than to the whole line
Fixed local variables not showing up in tooltips
Initial values for variables and procedure arguments are now shown in tooltips, when available
Changed application icon
Changed handling of failed parsing - if preprocessing was successful, constants and macros will still be available in hints and autocomplete
Parser timeout after editing text was increased, as well as it's durability against script errors (it will now fail on serious syntax errors only)

---------
3.5 by phobos2077
---------
Added all new sfall functions and macros to SSL syntax highlighting
Reintegrated the parser (and enabled by default) - finally supporting new syntax and functions - in line with the compiler
Added parser output tab
.h files will be attempted to be parsed as .ssl

---------
2.10.0.5 by phobos2077
---------
1) Pressing Ctrl+F always gives focus to Search Text field (in some cases it didn't before)
2) Pressing Esc in Search window - closes it
3) Editor Settings are now stored in Current Working Directory, instead of Users directory (can have two editors with different compile script paths for example)
4) Added 2 options in Settings window: Convert Tabs to spaces and Tab size
5) (hopefully) fixed a nasty bug: when using code Tree View to the right it showed last parsed tab, instead of currently opened
6) Made it so all fallout/sfall script commands will be highlighted (sfall commands in bold).
7) Errors tab is opened upon unsuccessful compile
8) Implemented extremely simple drag-n-drop reordering of Tabs
9) Added GoTo Line command
10) Added commands "UPPERCASE" and "lowercase" selected text
11) Fixed Close Tab in buttom tab control closing document instead
12) Added "Close All" and "Close all but this" commands
13) Fixed "Replace All" corrupting document when search string had different length than replace string
14) Visually improved Code Navigator (treeview)
15) When closing current tab, last tab becomes active instead of first
16) Ability to drag&drop files into Script Editor

---------
2.10
---------
Fixed a race condition that would cause a hang when saving a file while the parser was running

----------------------------------------------------------------------------------------------

Alpha 1
---------
Can save/load/compile. Support for multiple files. Displays raw compiler output after compilation
Has syntax highlighting, and folds code between begin/ends

sslc can preprocess, has optimization pass, support for arrays, hex constants, for and foreach loops, etc.

Alpha 2
---------
new menu options: Register script, edit menu, compile all open files, batch compile, outline

sslc no longer hangs if too many errors are output, some optimization bugs fixed.
Unreferenced procedure warnings are no longer given for procedures that are called directly by fallout.

Alpha 3
---------
Search capability, current document, all open documents, all files in folder. supports regex and storing a list of matches.
Along with the raw compiler output a neat list of errors is created, with jumpto support.
Highlighting rules for msg files
Decompilation support via int2ssl
Window position is now remembered

Alpha 4
---------
Hovering the mouse over the tab of an open file now displays the full path to that file
New menu options to preprocess or roundtrip a file
The error list is now shared between all open windows, instead of each one having its own unique list
The error list now shows messages as well as errors and warnings, and sorts in order of importance
Improved the register script option

sslc now has a preprocess only option. Yet more optimization bugs fixed. Optimization messages are now printed in the same format as errors/warnings.

Alpha 5
---------
Some messages and warnings which previously displayed the wrong file name in the errors window have been corrected
Hovering the mouse over some types of text displays tooltips
A names window, listing procedures and variables
A context menu on the editor, containing tools like jump to definition and find references
The optimizer is better at locating procedures to remove, can propagate and remove global variables, can remove empty if/else blocks, and can remove unused strings from a program namespace
The editor can create new files from templates

Alpha 6
---------
Fixed a crash which could occur when trying to parse functions with more than 1 local variable
Fixed a wrong code error in the optimizer in while loops
Fixed a missed optimization that caused dead store removals to not propagate properly.
Reverted a change that caused for and foreach loops to require a begin/end around the loop body. (switch statements still require them.)

Alpha 7
---------
Fixed another wrong code bug in the optimizer
New optimization passes to try and remove more unneeded stores
Improvements to script registration

Alpha 8
---------
Fixed macros with mutliple arguments but no definition crashing the parser
Fixed closing the last but one tab leaving the editor in an invalid state
Fixed a crash when trying to open an include specified by a relative path of an unsaved file
Add comments to new lines in scripts.h
